﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Ferreteria.Forms
{
    public partial class FrmBuscarCliente : Form
    {
       
        DisancoEntities context;
        public Clientes clienteSeleccionado;
        DataTable dtClient;

        public FrmBuscarCliente()
        {
            InitializeComponent();
                   
            context = new DisancoEntities();

            dtClient = new DataTable();

            dtClient.Columns.Add("id");
            dtClient.Columns.Add("Nombre");
            dtClient.Columns.Add("Dirección");
            dtClient.Columns.Add("Localidad");
            dtClient.Columns.Add("Cond. IVA");
            dtClient.Columns.Add("CUIT");
            dtClient.Columns.Add("Transporte");

            CargarGrillaCli();
              
           

            cmbTipoBusqueda.SelectedIndex = 0;

        }

        private void CargarGrillaCli()
        {
            context = new DisancoEntities();
            dtClient.Rows.Clear();
            try
            {
                foreach (var cli in context.Clientes)
                {
                    DataRow filacliente = dtClient.NewRow();
                    filacliente["id"] = cli.cliente_id;
                    filacliente["Nombre"] = cli.cliente_nombre;
                    filacliente["Dirección"] = cli.cliente_direccion;
                    filacliente["Localidad"] = cli.cliente_localidad;
                    filacliente["Cond. IVA"] = cli.CondicionIVA.condicion_sigla;
                    filacliente["CUIT"] = cli.cliente_cuit;
                    filacliente["Transporte"] = cli.cliente_transporte;
                    dtClient.Rows.Add(filacliente);
                }

                dgvClientes.DataSource = dtClient;
                dgvClientes.Columns["id"].Visible = false;
                dgvClientes.Columns["Nombre"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; ;
                dgvClientes.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                dgvClientes.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            context = null;
        }

        private void btnBuscarCliente_Click(object sender, EventArgs e)
        {
            context = new DisancoEntities(); ;
            dtClient.Rows.Clear();
            
            String cadena = txbBusqueda.Text;

            var busqueda = from cli in context.Clientes
                           where cli.cliente_nombre.Contains(cadena)
                               select cli;



            if (cmbTipoBusqueda.SelectedIndex == 1)
            {
                busqueda = from cli in context.Clientes
                               where cli.cliente_cuit.Contains(cadena)
                               select cli;
            }
                
            try
                {
                    foreach (var cli in busqueda)
                    {
                        DataRow filacliente = dtClient.NewRow();
                        filacliente["id"] = cli.cliente_id;
                        filacliente["Nombre"] = cli.cliente_nombre;
                        filacliente["Dirección"] = cli.cliente_direccion;
                        filacliente["Localidad"] = cli.cliente_localidad;
                        filacliente["Cond. IVA"] = cli.CondicionIVA.condicion_sigla;
                        filacliente["CUIT"] = cli.cliente_cuit;
                        filacliente["Transporte"] = cli.cliente_transporte;

                        dtClient.Rows.Add(filacliente);

                    }
                    dgvClientes.DataSource = dtClient; ;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                context = null;
            }
   

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void FrmBuscarCliente_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                e.Handled = true;
                this.btnBuscarCliente_Click(sender, e);
            }  



        }

        private void bttnAceptar_Click(object sender, EventArgs e)
        {
            context = new DisancoEntities();
            try
            {
                int clienteId = Convert.ToInt32(dgvClientes.SelectedRows[0].Cells[0].Value);
                this.clienteSeleccionado = context.Clientes.FirstOrDefault(c => c.cliente_id == clienteId);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            context = null;
            this.Close();
        }
    }
}
